Master key trust grants and revocations for minor keys

ABSTRACT

A method and apparatus is provided that allows code signed by a master key to grant trust to an arbitrary second key, and also allows code, referred to as an antidote and also signed by the master key to revoke permanently the trust given to the second key.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.13/458450 filed Apr. 27, 2012, which is a continuation U.S. applicationSer. No. 12/022963, filed Jan. 30, 2008, which is now issued as U.S.Pat. No. 8,181,018, which is a continuation of U.S. application Ser. No.10/478,767, filed Nov. 20, 2003, which is now issued as U.S. Pat. No.7,328,337, which is a 371 national stage application of internationalapplication number PCT/US01/17128, filed May 25, 2001. Each of theaforementioned patent(s), and application(s) are hereby incorporated byreference in their entirety.

BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to security trusts. More particularly, theinvention relates to allowing code signed by a master key to grant trustto an arbitrary second key, and allowing code, referred to as anantidote, also signed by the master key to revoke permanently the trustgiven to the secondary key.

2. Description of the Prior Art

Simply speaking, computer systems are at a state such that companies canrelatively easily distribute a lot of code to a lot of end users. Toprotect their code or their product from hackers and unknown impurities,such companies typically apply a security mechanism. An example of asecurity mechanism is trust using Certificate Revocation Lists (CRL).

In this context, the definition of trust has two parts. The first partis establishing identity of a participant. Typically, the participanthas, as an analogy a letter of introduction signed by some other entity.The signing entity is typically referred to as a certificate ofauthority, or CA. The certificate of authority, or simply, certificateestablishes the participant's name and signature. Other terms usedinterchangeably with certificate are master key, super key, and systemcertificate. Therefore, the participant's identity is a letter ofintroduction signed by a CA.

The second part is a statement of trust, which according to the analogyabove may be a letter stating trust the participant. That is, the firststep is to establish identity of a participant, and the second step isan agreement provided stating trust such identity. The identity and theagreement together work to establish trust.

From a typical computer system's perspective, an example of animplementation of trust is accomplished by using CRLs. The use of CRLsis bundled with the released software. Associated with the releasedsoftware is a system certificate. This certificate along with aplurality of other certificates reside in a certificate database. Theuse of certificates is adaptable to be applied to releases of additionalsoftware released by the same entity that released the first systemcode. Sometimes they are referred to as patches. Signed patches mean forthe end user to trust the patches as well as the originally signedsoftware.

Another level of complexity is added by desiring partner or vendor codeto be released with the original system code. In order for all threetypes of code, original system code, patches, and partner code to worktogether seamlessly, they all currently need to be signed by the samecertificate.

Currently, in the event that the partner code is faulty and was signedby the certificate, then the system code and its patches are atjeopardy. The current remedy is to modify the partner code forcorrections and re-release it. However, because the erroneous partnercode was signed by the certificate, the certificate's power must berevoked. Revoking the certificate's power impacts trust granted to thesigned original system code and any of its signed patches. A secondmaster key or certificate needs to be created to sign the originalsystem code, its patches, and the corrected partner code prior to theirre-release.

Obviously, re-releasing good software (original system and patches) is aredundant process that can prove crippling and prohibitively expensivefor a company.

It is also a major task for a company to re-release corrected partnersoftware when the partner software is of a large quantity, which istypically the case.

It is could also be very detrimental to a company should its partnerprovide code unbeknownst to the company or to the partner until afterits release contain code that is offensive and cannot be revoked in atimely and efficient manner.

R. Sudama, D. M. Griffin, B. Johnson, D. Sealy, J. Shelhamer, and O. H.Tallman, U.S. Pat. No. 5,619,657 (Apr. 8, 1997) discloses a method forproviding a security facility for a network of management serversutilizing a database of trust relations to verify mutual trust relationsbetween management servers. The disclosure consists of a method forproviding security for distributing management operations amongcomponents of a computer network using a network of mutually trusting,mutually authenticating management services to dispatch operations toselected host systems. Mutual authentication and trust are establishedon every transmission link from a point of submission to a designatedmanagement server which invokes a service provider to perform managementoperations on a selected host.

However, Sudama et al requires the prior art standard technique ofquerying a database to the trusted identification of concern and doesnot comprise revoking trust.

M. Gasser, A. C. Goldstein, C. W. Kaufman, and B. W. Lampson, U.S. Pat.No. 55,224,163 (Jun. 29, 1993) discloses a method for delegatingauthorization from one entity in a distributed computing system toanother in a single computing session through the use of a sessionpublic/private encryption key pair. At the end of the computing session.the private encryption key is erased and terminates the computingsession.

Gasser et al addresses security on a temporary, or session basis. Inaddition, the user is required to certify that the workstation inquestion possessing the private encryption key is authorized to speak onthe user's behalf.

It would be advantageous to provide an elegant, simple, and efficientmeans to revoke the trust previously granted to partner code.

It would be advantageous to allow partner code to be signed by its own,unique certificate so as not to impact the release of other code signedby other certificates.

It would be advantageous to revoke a minor key for destroying trust ofpartner code and reassign a new minor key to grant trust to corrected ormodified partner code, rather than re-releasing or shipping all codesigned by a master key.

SUMMARY OF THE INVENTION

A method and apparatus is provided that essentially adds two elements offunctionality to a client. The first element of functionality allowscode signed by a master key to grant power, or trust to an arbitrarysecond, or minor key. The second element of functionality allows code,referred to as an antidote, signed by a master key to preclude givingpower to a specific secondary key permanently.

The master key is used to sign only extremely small elements of code.These code elements convey either a grant or denial of trust for asecondary key. The fact that these sections of code are small and simpleensures no errors are made in the code and hence the master key neverneeds to be revoked.

The idea of the antidote is that trust can be permanently denied for asecondary key. Once the antidote is applied by rerunning the trust code,the secondary key will never have any more effect. From a usageperspective, the code fragment is run as an upgrade to combat a securitybreach that was discovered. The upgrade running the antidote permanentlyprevents the upgraded client from paying attention to the trusted codethat has been breached. This makes the granted trust benign once it isbreached.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic diagram of a trust system according to theprior art; and

FIG. 2 shows a schematic diagram of a trust system according to theinvention.

DETAILED DESCRIPTION OF THE INVENTION

A method and apparatus is provided that essentially adds two elements offunctionality to a client. The first element of functionality allowscode signed by a master key to grant power, or trust to an arbitrarysecond, or minor key. The second element of functionality allows code,referred to as an antidote, signed by a master key to preclude givingpower to a specific secondary key permanently.

The master key is used to sign only extremely small elements of code.These code elements convey either a grant or denial of trust for asecondary key. The fact that these sections of code are small and simpleensures no errors are made in the code and hence the master key needsnever to be revoked.

The idea of the antidote is that trust can permanently be denied for asecondary key. Once the antidote is applied by rerunning the trust code,the secondary key will never have any effect. From a usage perspective,the code fragment is run as an upgrade to combat a security breach thatwas discovered. The upgrade running the antidote permanently preventsthe upgraded client from paying attention to the trusted code that hasbeen breached. This makes the granted trust benign once it is breached.

Example Problem

The invention can be understood by an example problem and its solution.The example is of a client shipping software to end users and theclient's partner desiring to ship software that can be viewed as an addon to the client's software. The problem can arise when both the clientsoftware and the partner software are each signed by a single masterkey.

Referring to FIG. 1, the prior art teaches a master key 100 signs systemcode 101 of a client. At some point later in time, the client releasesan additional patch of code 102 that is also signed by the master key100 to ensure that all code works in unison.

When it is desired to ship or release partner code 103 of the clientthat is associated with or added on to the client code the master key100 also signs the partner code 103. Such signing 104 by the master key100 can be viewed as dangerous because the partner code 103 might haveerrors. This can be particularly troublesome when the partner code 103is a large body of code.

The problem arises when the client has distributed code (101-103) andsome of the partner code 103 is faulty. The corrective procedureaccording to the prior art is to correct the errors in the partner code103 and subsequently redistribute the entire amount of previouslydistributed code (101-103) containing the corrections and again signedby the master key 100.

Solution to Example Problem

According to the preferred embodiment of the invention, a solution tothe problem is as follows. Referring to FIG. 2, the partner creates asecondary or minor key 200. The client provides empowerment or trustcode 201 signed by the master key 100 that essentially allows trustingthe minor key 200 with power substantially close to the power of themaster key 100. The empowerment code 201 signed by the master key 100together with the partner code 103 signed by the minor key 100 maketrusted partner code 202.

To revoke the trust created by use of the minor key empowerment code 201signed by the master key 100 and the partner code 103 signed by theminor key 100, code referred to as antidote code 203 is created, signedby the master key 100, and distributed when necessary to users of thetrusted partner code 202.

A small piece of Application Programming Interface (API) add/destroytrust code 204 is provided for the client's system 205. This API 204 isalso signed by the master key 100. The empowerment code 201 and theantidote code 203 each make calls to this API to ensure that the system205 has the ability to add or destroy the trust granted by the minor key200.

According to the preferred embodiment of the invention, implementationis as follows. First the add/destroy trust API 204 is added to thesystem 205. Then the client simply writes the small piece of empowermentcode 201 and the small piece of antidote code 203 that each make callsto the API 204. In the preferred embodiment, any of the API,empowerment, and antidote code is written in, but not limited to theJava or JavaScript programming languages, or in any other generalpurpose code.

It is noted that the granting and revoking of trust according to theinvention is performed outside of the standard infrastructure as inusing certificates and revocation lists as according to the prior art.Also, it is noted that according to the invention, the master key orcertificate is trusting code, as opposed to trusting another certificateor key as according to the prior art.

It is noted that the invention does not require the standard generalmechanism of certificate revocations lists, whereby validating aparticular certificate requires accessing a central area to check forrevocations. In the preferred embodiment of the invention, an upgrade isdownloaded to the end user, wherein the upgrade carries the revocationof the trust.

It is noted that the antidote code 203 destroying trust is more powerfulthan the empowerment code 201 together with the signed partner code 203making the added trust. That is, the antidote code 203 has permanencemeaning that when the system 205 encounters trusted partner code 202signed by the minor key 200 at a later point in time and after theantidote code 203 has been applied, the system 205 will continue tohonor the revocation of trust by the minor key 200.

According to the preferred embodiment of the invention, after revocationof the minor key 200 and when the partner feels confident aboutredistributing modified code 103, a new minor key is issued and theadding of trust can be reinstated.

It is noted that if a client has multiple partners, then in oneembodiment of the invention, each partner can have its own unique minorkey.

An End User's Perspective

According to the prior art, an end user is presented with dialog boxesasking the end user whether or not the end user trusts code about to beloaded or run. Such dialogs typically confuse the end user.

According to the preferred embodiment of the invention, such dialogboxes are avoided. When an end user requests the upgrade containing thepartner code add on, the end user actually receives the signed (by themaster key) empowerment code and the signed (by the minor key) partnercode, without receiving any questions. The end user experiences thesystem code, any additional patches, and powerful partner code allworking together seamlessly.

Although the invention has been described in detail with reference toparticular preferred embodiments, persons possessing ordinary skill inthe art to which this invention pertains will appreciate that variousmodifications and enhancements may be made without departing from thespirit and scope of the claims that follow.

1. A method for granting trust to and revoking said granted trust frompartner code of a system using a master key, comprising the steps of:signing said partner code with a minor key; issuing minor keyempowerment code signed by said master key for said granting trust tosaid partner code; and if revoking said granted trust becomes necessary,distributing minor key antidote code associated with said partner codesigned by said master key for said revoking said granted trust from saidpartner code. 2-24. (canceled)